מבוא למדעי ה מחשב תוכנ י יה הרצאה 4: משפטים, תנאים ולולאות

Σχετικά έγγραφα
לולאות קבוע, פסוק while פסוק do-while פסוק for

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

חורף תש''ע פתרון בחינה סופית מועד א'

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

תרגול פעולות מומצאות 3

ל הזכויות שמורות לדפנה וסטרייך

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

gcd 24,15 = 3 3 =

בשחמה יעדמל אובמ תואלולו ם יאנת, םיטפשמ

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

3-9 - a < x < a, a < x < a

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

רשימת משפטים והגדרות

תרגיל 13 משפטי רול ולגראנז הערות

סדרות - תרגילים הכנה לבגרות 5 יח"ל

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

מבני בקרה ב C שעור מס. 2 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון.

תרגול מס' 6 פתרון מערכת משוואות ליניארית

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

תרגול מס' 1 3 בנובמבר 2012

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

Logic and Set Theory for Comp. Sci.

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

גבול ורציפות של פונקציה סקלרית שאלות נוספות

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

סיכום- בעיות מינימוםמקסימום - שאלון 806

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

Domain Relational Calculus דוגמאות. {<bn> dn(<dn, bn> likes dn = Yossi )}

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

שאלה 1 V AB פתרון AB 30 R3 20 R

קיום ויחידות פתרונות למשוואות דיפרנציאליות

{ : Halts on every input}

תשובות מלאות לבחינת הבגרות במתמטיקה מועד קיץ תש"ע מועד ב', מיום 14/7/2010 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

תרגול 8: מטלאב לולאות

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

מתמטיקה בדידה תרגול מס' 2

אלגברה מודרנית פתרון שיעורי בית 6

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

x a x n D f (iii) x n a ,Cauchy

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

פולינומים אורתוגונליים

. {e M: x e} מתקיים = 1 x X Y

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

לדוגמא : dy dx. xdx = x. cos 1. cos. x dx 2. dx = 2xdx לסיכום: 5 sin 5 1 = + ( ) הוכחה: [ ] ( ) ( )

logn) = nlog. log(2n

אלגברה ליניארית (1) - תרגיל 6

(Derivative) של פונקציה

(ספר לימוד שאלון )

מתמטיקה בדידה תרגול מס' 5

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

PDF created with pdffactory trial version

אלגוריתמים ללכסון מטריצות ואופרטורים

שאלה 1 נתון: (AB = AC) ABC שאלה 2 ( ) נתון. באמצעות r ו-. α שאלה 3 הוכח:. AE + BE = CE שאלה 4 האלכסון (AB CD) ABCD תשובה: 14 ס"מ = CD.

תכנות בשפת C פרק שלישי: בקרת זרימה שייקה בילו יועץ ומרצה בכיר למדעי המחשב וטכנולוגית מידע מומחה למערכות מידע חינוכיות, אקדמיות ומנהליות

Διάλεξη 5η: Εντολές Επανάληψης

מודלים חישוביים תרגולמס 5

Regular Expressions (RE)

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

הגדרה: מצבים k -בני-הפרדה

ושל (השטח המקווקו בציור) . g(x) = 4 2x. ו- t x = g(x) f(x) dx

מתמטיקה בדידה תרגול מס' 13

סיכום אינפי 2 19 ביוני 2010 מרצה: צביק איתמר, בעזרת סיכומים משיעוריו של נועם ברגר מתרגלים: ינאי ג', איב גודין

מתמטיקה בדידה תרגול מס' 12

סרוקל רזע תרבוח 1 ילמיסיטיפניא ןובשח

Υπολογισμός - Εντολές Επανάληψης

תרגיל 7 פונקציות טריגונומטריות הערות

В.О. Бугаенко. Уравнения Пелля. Второе издание. МЦНМО, 2010.

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי

אלגברה ליניארית 1 א' פתרון 8

מבנים אלגבריים II 27 במרץ 2012

אלגברה ליניארית 1 א' פתרון 2

co ארזים 3 במרץ 2016

טריגונומטריה הגדרות הפונקציות הטריגונומטריות הבסיסיות

1 סכום ישר של תת מרחבים

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

Transcript:

מבוא למדעי ה מחשב הרצאה 4: משפטים, תנאים ולולאות מבוסס על השקפים שנערכו במקור ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור, וסאהר אסמיר, ועובדו ע"י מיכאל אלעד בסמסטר חורף 2007. תוכנ י יה משפטים בשפת - C (Statements) משפטי תנאי משפט תנאי if-else פסוק ברירה switch-case-default פעולת התנאי:? לולאות for while דוגמאות: מציאת GCD (אלגוריתם אוקלידס) מציאת שורש (שיטת ניוטון-רפסון) 2 1

Statements - משפטים בשפת C משפט ביטוי statement) :(expression ביטוי שאחריו ';' נחשב כמשפט. לעיתים קיימות תוצאות לוואי למשפט כזה ולעיתים לא. ;++y x = ; משפט ריק statement) :(empty מורכב מ- ';' בלבד. אין למשפט תוצאות לוואי. משפט מורכב statement) :(compound רצף משפטים המוקפים בסוגריים מסולסלים { נחשב כמשפט אחד. רצף { כזה נקרא גם בלוק. t = x; x = y; y = t; 3 תוכנ י יה משפטים בשפת - C (Statements) משפטי תנאי משפט תנאי if-else פסוק ברירה switch-case-default פעולת התנאי:? לולאות for while דוגמאות: מציאת GCD (אלגוריתם אוקלידס) מציאת שורש (שיטת ניוטון-רפסון) 4 2

משפט if expression 0 Statement 0 זהו משפט מהצורה: אם ערך האמת של expression הינו,True מבצעים את.statement אם ערך האמת של expression הינו,False מדלגים על ביצוע statement (ועוברים למשפט הבא אחריו). לרוב, statement יה יה משפט מורכב. לדוגמה: if (expression) statement if(b*b < 4*a*c) { printf( no real solution to the quad. equation.\n ); return 0; 5 משפט if-else expression 0 0 if (expression) statement1 else statement2 זהו משפט מהצורה: אם ערך האמת של expression הינו,True מבצעים את statement1 מדלגים על statement2 ועוברים למשפט הבא. אם ערך האמת של expression הינו,False מדלגים על,statement1 מבצעים את statement2 ואז ממשיכים לבא. לדוגמה: st1 st2 if(tomorrow_is_rainy == y ) printf( Take your umbrella.\n"); else printf( Leave the umbrella at home.\n"); 6 3

ק ינ ו ן if-else מה מבצע המשפט הבא? if(a==1) if(b==2) if(b==2) printf("***"); printf("***"); else else printf("###"); printf("###"); b =2 2 a =1 *** ### 1 ### ### if(a==1) { if(b==2) printf("***"); else printf("###"); ה- else מקושר תמיד ל- if האחרון. ניתן להפריד ביניהם באמצעות {... 7 רב ברירה if-else if ( a < 0 ) return -1; else if ( a == 0 ) return 0; else if ( a < 11 ) return 1; else return a; False False False a == 0 a < 11 True a < 0 True 0 True -1-1 0 1 a a 10 1 a 8 4

רב ברירה if-else if ( a < 0 ) return -1; else if ( a == 0 ) return 0; else if ( a < 11 ) return 1; else return a; if ( a < 0 ) return -1; else if ( a == 0 ) return 0; else if ( a < 11 ) return 1; else return a; 9 משפטי switch-case-default switch (expression) { case value1: statement1 break; //optional... default: //optional statementn זהו משפט מהצורה: טיפוס שלם קבוע שלם הערך של expression מושווה לכל.value בהתאמה הראשונה שנמצאת, מתבצע ה- statement המתאים לאותו.value אם ה- statement מכיל break אז מדלגים מה- break לפקודה הבאה (אחרי ה- switch ). אחרת, ממשיכים לבצע את הבדיקות עפ"י ה- value הבאים ובהתאם לחשב את ה- statement המתאים. אם אין אף התאמה ויש default מתבצע ה- statement המתאים. 10 5

משפטי switch-case-default int x, y, res; char op; RUN... // read x, y, op switch (op) { case '+': printf("result is: %d", x + y); break; //what if we remove it? case '-': printf("result is: %d", x - y); break;... // code for '*' and '/ default: printf("invalid op! ); 11 ביטו י י תנא י :? זהו משפט מהצורה: expression1? expression2 : expression3 אם ערך האמת של expression1 הינו,True משערכים את expression2 וזהו גם הערך של הביטוי. אם ערך האמת של expression1 הינו,False משערכים את expression3 וזהו גם הערך של הביטוי. לדוגמה: d = (a > b)? (a b) : (b a); min = (x < y)? x : y; = a-b = min(x,y) 12 6

תוכנ י יה משפטים בשפת - C (Statements) משפטי תנאי משפט תנאי if-else פסוק ברירה switch-case-default פעולת התנאי:? לולאות for while דוגמאות: מציאת GCD (אלגוריתם אוקלידס) מציאת שורש (שיטת ניוטון-רפסון) 13 לולא ות קטע קוד המתבצע מספר פעמים נקרא לולאה.(loop) מספר הפעמים תלוי בערכו של ביטוי המחושב במהלך ריצת התכנית. כל אחד מביצועי הלולאה נקרא איטרציה.(iteration) ב- C קיימים שלושה משפטים המאפשרים ביצוע לולאות: while statement for statement do-while statement 14 7

לולאת while expression 0 statement 0 זהו משפט מהצורה: while (expression) statement כל עוד ערך האמת של expression הינו.statement מבצעים את,True לדוגמה, חישוב עצרת: unsigned int n, factorial = 1, i = 2; scanf( %d, &n); while(i <= n) { factorial = factorial * i; factorial *= i++; i = i + 1; printf("n!= %d", factorial); 15 דוגמה: חישוב ממוצע זוגי ים וממ וצע א י-זוג י ים קלט: סדרה של מספרים שלמים שהאחרון בהם הוא 0. פלט: ממוצע המספרים הזוגיים בסדרה (לא כולל 0) וממוצע המספרים האי-זוגיים. הנחות: קלט חוקי, יש לפחות שלם אחד זוגי ואחד אי-זוגי. אלגוריתם: חישוב סכום הזוגיים (אי-זוגיים) ומספרם באופן איטרטיבי (על ידי לולאה). בכל איטרציה נטפל בשלם אחד מהסדרה (אם הוא אינו 0). אם הוא זוגי (אי זוגי), נוסיפו לסכום הזוגיים (אי זוגיים) ונגדיל את מספר הזוגיים (אי- זוגיים) בהתאמה. 16 8

#include <stdio.h> int main() RUN { int odd_sum = 0, even_sum = 0, odd_count = 0, even_count = 0, next; printf("please insert a number\n"); scanf("%d", &next); while (next) { if (next % 2) { odd_sum += next; odd_count++; else { even_sum += next; even_count++; printf("please insert a number\n"); scanf("%d", &next); printf("\naverage of even numbers is %6.2f.\n" "Average of odd numbers is %6.2f.\n", (double)even_sum/even_count, (double)odd_sum/odd_count); return 0; 17 לולאת do-while statement do statement while(expression); זהו משפט מהצורה: 0 expression 0 מבצעים את statement כל עוד ערך האמת של expression הינו True (פעם אחת לפחות). לדוגמה, קליטת מספר חיובי: int x; do { printf("please enter a positive number: "); scanf("%d", &x); while (x <= 0); 18 9

לולאת for expression1 זהו משפט מהצורה: for(expression1;expression2;expression3) statement expression2 0 statement 0 מבצעים את expression1 (אתחול) ואז כל עוד ערך האמת של expression2 (תנאי) הינו,True מבצעים את statement ואז expression3 (קידום). כ"א משלושת הביטויים יכול להיות ריק. expression3 expression1 while (expression2) { statement expression3 שקול ל: 19 - המשך לולאת for sum = 0; for(i = 1; i <= n; i++) sum += i * i; : n i= 1 i 2 חישוב הביטוי for(i = 2 ; i <= n; i++) factorial *= i; חישוב עצרת: printf("n!= %d", factorial); i = 2; while(i <= n) { factorial *= i; i++; printf("n!= %d", factorial); השווה מול השימוש ב- while : 20 10

- המשך לולאת for שימוש באופרטור פסיק,: חישוב ביטוי מהצורה exp1, exp2 מתבצע ע"י חישוב exp1 ולאחריו חישוב.exp2 ערכו (טיפוסו) של ביטוי זה הינו ערכו (טיפוסו) של.exp2 sum = 0; for(i = 1; i <= n; i++) sum += i * i; קודם ראינו את התוכנית דר ך נוספת לביצוע הסכום הנ"ל: for(sum = 0, i = 1; i <= n; sum += i * i, i++); ככלל, בסוגריים הצמודים ל- for יופיעו ביטויים הקשורים בבקרת הלולאה (אך לא בתכנה), ולכן נעדיף את הפתרון הראשון שראינו. 21 תוכנ י יה משפטים בשפת - C (Statements) משפטי תנאי משפט תנאי if-else פסוק ברירה switch-case-default פעולת התנאי:? לולאות for while דוגמאות: מציאת GCD (אלגוריתם אוקלידס) מציאת שורש (שיטת ניוטון-רפסון) 22 11

מציאת המכנה המשותף הגדול ביותר (GCD).(Greatest Common Divider) מחלק משותף גדול ביותר :GCD בהינתן שני שלמים חיוביים m ו- n gcd(m,n) הוא השלם הגדול ביותר שמחלק את שניהם. פתרון ביה"ס יסודי: פרק את שני המספרים לגורמים ראשוניים. מכפלת הגורמים הראשוניים המשותפים היא ה- GCD. לדוגמא: n=270 m=700 n = 2 * 3 3 * 5 m = 2 2 * 5 2 * 7 gcd(700, 270) = 2 * 5 = 10 23 פיר ו ק מספר לגורמים ראשוני ים המשפט היסודי של האריתמטיקה קובע כי כל מס פר שלם יכול להיכתב בצורה ייח וד ית בתור מכפלה של מספרים ראשוניים. פירוק מספר n לגורמים: אם n ראשוני, הוסף את n לקבוצת המחלקים ועצור. אחרת, עבור סדרתית על המספרים הראשוניים עד שורש n. הוסף את p, המספר הראשוני הראשון המחלק את n, לקבוצת המחלקים וחזור על התהליך עם.n/p לדוגמה, עבור :n=30 5 = 5 * 5 3 = 15 * 15 2 = 30 קושי: האלגוריתם אינו מעשי עבור n גדול. למשל עבור מספר בן 18 ספרות יש צורך לעבור על כל הראשוניים עד 1,000,000,000 (השורש שלו!). מסיבה זו, פירוק לגורמים ראשוניים משמש בסיס לקריפטוגרפיה מודרנית. 24 12

אלגור יתם או יקל ידס לח ישוב GCD אלגוריתם אוקלידס מתבסס על הטענות המתמטיות הבאות:.r = m % n ואת n מחלק את q אם ורק אם n ואת m מחלק את q נובע מהשוויון.m = r + q * n עבור n השונה מ- 0 gcd(n,m%n).gcd(m,n) = m gcd(m, 0) = עבור m שאינו.0 מה קורה אם n? > m Euclid Aristotle Eudoxus of Cnidus 25 ההיג י ו ן הבסיס י נניח כי q הוא מחלק כלשהו המחלק באופן שלם הן את m והן את n. נניח כי.m>n m-2n m-n m n q ברור כי.gcd(m,n)=gcd(m-n,n) באופן דומה,,gcd(m,n)=gcd(m-2n,n) וכו'. למעשה, בהורדה כזו שוב ושוב נגיע לקשר:.gcd(m,n)=gcd(n,m%n) היפוך הסדר נובע מכך שבהכרח:.m%n<n 26 13

אלגור יתם או יקל ידס, דוגמאות דוגמא 1 דוגמא 2 m = q*n + r m n m n 700 = 2*270 + 160 270 = 1*160 + 110 160 = 1*110 + 50 110 = 2*50 + 10 50 = 5*10 + 0 700 270 270 160 160 110 110 50 50 10 10 0 100 17 17 15 15 2 2 1 1 0 27 אלגור יתם או יקל ידס, הוכחת נכונ ות נסמן ב- m i ו- n i את ערכי המשתנים m ו- n בתום האיטרציה ה- i. שמורה (תכונה שנשמרת במהלך האלגוריתם): gcd(m 0,n 0 ) = gcd(m i,n i ) הוכחת השמורה נעשית באינדוקציה על i: בסיס: מיידי. הנחה: ) i gcd(m 0,n 0 ) = gcd(m i,n צעד האינדוקציה: הנחת האינדוקציה טענה מתמטית אלגוריתם gcd(m i+1,n i+1 ) = gcd(n i,m i %n i ) = gcd(m i,n i ) = gcd(m 0,n 0 ) בתום האיטרציה האחרונה: gcd(m 0,n 0 ) = gcd(m N,n N ) = gcd(m N,0) = m N 28 14

אלגור יתם או יקל ידס, ק ידוד #include <stdio.h> RUN int main() { unsigned int m, n; scanf("%u%u", &n, &m); while(n!= 0) { unsigned int temp = n; n = m % n; m = temp; if(m!= 0) printf("the gcd is %d\n", m); return 0; 29 דוגמה: מציאת שורשי משוואה הגדרת הבעיה: חשב את נקודת החיתוך של פונקציה נתונה f(x) עם ה- 0, כלומר פתור,f(x)=0 עבור x ממשי. f(x) x אנו ניישם שיטה איטרטיבית לחיפוש הפתרון שיטת ניוטון רפסון. אנו נתחיל בנקודה x 0 וממנה נעדכן לנקודות המתקרבות לחציית הציר. 30 15

עקר ו ן הפע ולה נזכיר פיתוח לטור טיילור סביב נקודה: f ''( x) 2 f ( x+ δ) = f ( x) + f '( x) δ+ δ +... 2 לפונקציות "חלקות" ול- δ מספיק קטן, נקבל כי f ( x) f ( x+ δ ) = 0 δ = f(x) f '( x) x+δ x x 31 מציאת שור שים ב שיטת ניוטון-רפסון שיטת ניוטון-רפסון (Newton-Raphson) - שיטה למציאת שורש של פונקציה גזירה בתחום נתון ע"י קיזוז הסטייה שלה. נתוני עזר נדרשים: נקודה x 0 "קרובה" לשורש, ופונקצית הנגזרת של הפונקציה. x 0 32 16

שיטת ניוט ו ן-רפסו ן - המשך השיטה: חזור: עבור לנקודה שבה חותך המשיק (הנגזרת) את הציר האופקי x i+1 = x i - f(x i ) / f'(x i ) הנחה: הקטע איננו מכיל נקודות קיצון (שבהן הנגזרת מתאפסת) f(x 0 ) f(x 0 ) / (x 0 - x 1 ) = tan α = f'(x 0 ) x 1 x 0 33 שיטת ניוט ו ן-רפסו ן - הדגמה x 1 x 0 x x 3 2 34 17

שיטת ניוט ו ן-רפסו ן - תנאי עצירה x i+1 - x i < δ f(x i+1 ) < ε בפתרון שנראה, נשתמש במספר איטרציות מקסימלי כתנאי עצירה. שילוב התנאים δ ו- ε מושאר כתרגיל. < ε x i+1 x i < δ 35 ק וד מקור עבור הפ ונקצ יה f(x)=x 2 9- #include <stdio.h> #define MAX_ITERATIONS 10 int main() { double a, fa, fda; int i; בעיה: אנו נצטרך לכתוב תוכנית חדשה לכל פונקציה f. פתרון: שימוש בפונקציות ומצביעים לפונקציות (בהמשך הקורס). RUN scanf("%lf", &a); fa = a*a - 9; for(i = 0; i < MAX_ITERATIONS && (fa!= 0); ++i) { fa = a*a - 9; fda = 2*a; /* what if fda == 0? */ a = a - fa/fda; printf("iteration: %d, Solution: %.12f\n", i, a); printf("solution is: %.12f\n", a); return 0; 36 18